rand関数は、乱数を生成します。乱数の種(ランダムシード)を設定したい場合は、srand関数を使用します。なお、srand関数で種を設定していない場合の種は1です。
#include <stdlib.h>
int rand(void);
void srand(unsigned int seed);
seedは乱数の種を指定します。種が同じ場合は、生成する乱数の値も同じになります。
rand関数は戻り値として、0からRAND_MAXの間の疑似乱数整数を返します。srand関数の戻り値はありません。
プログラム 例
#include <stdio.h> #include <stdlib.h> /* 列数 */ #define ROW_MAX 10 /* 乱数の種 */ #define RANDOM_SEED 123U int main(void) { int num; int random; srand(RANDOM_SEED); for (num = 1; num <= 50; ++num) { /* 1~10の間の乱数を生成 */ random = 1 + (int) (10.0 * rand() / (RAND_MAX + 1.0)); printf('%4d', random); if ((num % ROW_MAX) == 0) { printf('\n'); /* 改行 */ } } return 0; }
例の実行結果
$ ./rand.exe 1 8 3 4 4 2 4 3 1 9 7 4 4 9 5 5 8 10 8 4 9 4 4 1 2 9 3 10 8 1 2 9 8 4 3 2 6 6 5 6 5 1 10 8 9 4 3 7 4 10 $